;(function(root, factory){
    if (typeof exports === "object") {
        // CommonJS
        module.exports = exports = factory();
    }
    else if (typeof define === "function" && define.amd) {
        // AMD
        define([], factory);
    }
    else {
        // Global (browser)
        root.Assert = factory();
    }
})(this, function(){
    const isNull = function( o ){
        return o === undefined || o === null;
    }
    var Assert = {};
    Assert.isTrue = function(condition, msg){
        if (isNull(msg)) {
            msg = "this expression must be true";
        }
        if (typeof condition !== 'boolean' || !condition) {
            throw "[Assertion failed] - " + msg;
        }
    }
    Assert.isGeneralTrue = function(condition, msg){
        Assert.isTrue(!!condition, msg);
    }
    Assert.isNull = function(o){
        Assert.isTrue(!isNull(o), "the object argument must be null");
    }
    Assert.isNotNull = function(o){
        Assert.isTrue(isNull(o), "the object argument must not be null");
    }
    Assert.isEmpty = function(o){
        Assert.isTrue(isNull(o), "the object argument must be null");
    }
    return Assert;
})